<?php
/**
 * 管理员数据模型
 *
 * PHP version 5
 *
 * @package   LS
 * @author    Fee <Fee@shorigo.com>
 * @copyright 2015 SRG Inc.
 */
namespace Common\Model;
use Think\Model\RelationModel;
class AdminsModel extends RelationModel {

    protected $tableName = 'sys_admins'; 
    
    /**
     * 设置主键
     *
     * @author Fee
     */
    protected $pk        = 'admin_id';

    /**
     * 自动验证
     *
     * @author Fee
     */
    protected $_validate = array(
        array('admin_name',   'require', '帐号不能为空'),
        array('admin_name', '', '该帐号已被占用', 0, 'unique', 1),
        array('admin_email', 'require', '邮箱不能为空'),
        array('admin_email','email','邮箱格式不正确'),
        array('repassword', 'admin_pass', '两次密码输入不一致', 2, 'confirm')
     );

    /**
     * 自动完成
     *
     * @author Fee
     */
    protected $_auto     = array(
            array('admin_name', 'remove_xss', 3, 'function'),
            array('admin_email', 'remove_xss', 3, 'function'),
            array('add_time',      'time', 1, 'function'),
            array('group_id', 'checkGid', 3, 'callback'),
        );

    /**
     * 自动检测帐号
     *
     * @return bool
     * @author Fee
     */
    protected function checkName($data) {
            if(strlen($data) > 15 || strlen($data) < 6) {
                return false;
            } else {
                return true;
            }
        }

    /**
     * 获取登录IP
     *
     * @return string $ip
     * @author Fee
     */
    function getip() {
        return $_SERVER['REMOTE_ADDR'];
    }

    /**
     * 获取当前登录管理员
     *
     * @return int $admin_id
     * @author Fee
     */
    function getAdmin() {
        if (isset($_SESSION[C('USER_AUTH_KEY')])) {
            return $_SESSION[C('USER_AUTH_KEY')];
        }
    }

    /**
     * 根据admin_id获取姓名
     *
     * @return string
     * @author Fee
     */
    function getAdminName($admin_id) {
        //$rs = $this->field('user_id')->relation('user')->find($admin_id);
        $rs = $this->field('name')->find($admin_id);
        if($rs) {
            return $rs['name'];
            //return $rs['user']['user_name'];
        } else {
            return "";
        }
    }

    /**
     * 检测所属群组ID
     *
     * @return int group_id
     * @author Fee
     */
    protected function checkGid () {
        $gids = trim($_POST['gids'], ',');
        if($gids != "") {
            return ',' . $gids . ',';
        } else {
            return '';
        }
    }
    

    /**
     * 获取当前登录用户权限的相关参数
     *
     * @param string $param （group_id/role_id/section_id）
     *
     * @return array
     * @author Fee
     */
    public function getAdminAuthParam($param) {
        if(!empty($_SESSION[C('USER_AUTH_KEY')])) {
            $admin_id = $_SESSION[C('USER_AUTH_KEY')];
            $group_id = $this->where('admin_id=' . $admin_id)->getField($param);

            if($group_id) {
                return explode(',', trim($group_id, ','));
            } else {
                return array();
            }
        } else {
            return array();
        }
    }

    /**
     * 检测管理员的关系
     *
     * @param int $id ID
     *
     * @return bool 有关系返回true 无关系返回false
     * @author Fee
     */
    public function checkAdmin($id) {
        $data = $this->field("group_id")->find($id);
        if($data) {
            if(trim($data['group_id']) != "") {
                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }


}
?>